1. 批量创建特殊要求用户
批量创建10个系统账号theshu01-tehshu10并设置密码(密码为随机数,要求是字符和数字等的混合)
2. 参考答案1
开发思路如下:
1、创建10个系统账号,即theshu01-theshu10
对于给一个数字加0有多种实现方法,这里给出两种:
seq -w 10
1234567891011[root@AmingLinux-107 shell]# seq -w 1001020304050607080910echo {01..10}
12[root@AmingLinux-107 shell]# echo {01..10}01 02 03 04 05 06 07 08 09 10
2、要想通过脚本创建账号,必须知道如何实现无交互设置密码,如下:
3、密码为随机数,并且是8位字符串,这是个难点
实现随机数的方法很多,这里先给出常见的RANDOM方法,如下:
4、最后是实现相应的脚本。由于是批量创建10个账号并设置密码,因此需要使用for循环。
先来看一个带陷阱的错误解答方法:
上述脚本中用了两次随机数,如果不将其定义成变量,就会出现执行看起来相同的命令两次但是结果却不同的情况。
下面是一个输出不够美观但结果正确的答案:
下面的方法会调用系统函数库让输出更美观,同时增强逻辑性:
执行结果如下:
注意:随机数的字符串要定义成变量,否则,每次执行结果都会不相同。
3. 参考答案2
1、按照参考答案1的思路正常创建账号
2、要批量创建密码,可使用chpasswd
来实现,chpasswd
是一个批量更新用户口令的工具。
chpasswd
的使用示例:echo "test:123456" | chpasswd
给多个用户设置密码的命令为:chpasswd < 密码文件
但密码文件的内容必须以下面的格式来书写,并且不能有空行:
说明:用户必须存在
最后实现的脚本如下: